In modern distributed computing systems, it is becoming increasingly important to optimize the use of one or more shared computational resources by a group of users. An example of this phenomenon is grid computing systems. Within a typical grid computing environment, access to a number of computational devices is controlled by a set of job management systems. Job management systems determine the allocation of computational resources to submitted jobs; determine the scheduling of those jobs; and may sometimes determine aspects of the execution context of the jobs, such as billing accounts, security credentials, the location of job activities executing in parallel, and so forth. The purpose of the job management system(s) is to accept job requests from the grid environment's users and to optimize overall use of the computational resources. The computer resources may include supercomputers, computing clusters, application servers, desktop workstations, and so forth.
Distributed computing systems, of which grid systems are an example, may involve a hierarchy of application and resource management systems that support a large number of users and computers. For example, a user may ask a centralized job manager to run an application. The central manager may, in turn, ask a subsidiary job manager that is responsible for a collection of compute clusters to run the application. The subsidiary manager determines the specific computing resource that is most appropriate for the application and then requests that the compute cluster's job manager run the user's application.
In such a hierarchically-managed distributed system, the sequence of job managers that are responsible for the user's application and the assigned compute cluster, including any subsidiary managers, may be dynamically determined based on the overall state of the distributed environment. Because the user may not know the details of where its application will ultimately execute at the time the job request is submitted, it is likely that some information required at application execution time must be supplied by or can better be supplied by one or more of the job managers processing the job request. Existing systems fail to provide efficient and sufficient protections for the security of such information.